import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import axios from 'axios'
import qs from 'qs'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'

// 导入全局样式
import './assets/global.css'
// 引入全局矢量样式
import './assets/icon/icon.css'

// 配置axios请求
Vue.prototype.$http = axios
// 配置请求的跟路径
axios.defaults.baseURL = 'http://localhost:8080/'

// 在request拦截器中，展示进度条NProgress.start()
axios.interceptors.request.use(config => {
  NProgress.start()
  config.headers.Authorization = window.sessionStorage.getItem('token')
  return config
})
// 在response拦截器中，隐藏进度条NProgress.done()
axios.interceptors.response.use(config => {
  NProgress.done()
  return config
})

// axios请求拦截器，将请求头的Content-Type：application/json类型转换成application/x-www-form-urlencoded类型
axios.interceptors.request.use(config => {
  // 如果不是FormData类型，且为post请求，则进行数据的序列化
  if (Object.prototype.toString.call(config.data) !== '[object FormData]' && config.method === 'post') {
    // 请求拦截器处理
    config.data = qs.stringify(config.data)
  }
  return config
}, (err) =>{
  return Promise.reject(err);
})

import './plugins/element.js'

Vue.config.productionTip = false

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

